package com.shop.service;

import com.shop.dto.DiscountDTO;
import com.shop.dto.ProductDTO;
import com.shop.dto.ProductPageQueryDTO;
import com.shop.entity.Product;
import com.shop.result.PageResult;

import java.util.List;

public interface ProductService {

    static void save(DiscountDTO discountDTO) {
    }

    void save(ProductDTO productDTO);


    /**
     * 商品分页查询
     *
     * @param productPageQueryDTO 分页查询参数对象
     * @return 分页结果
     */
    PageResult pageQuery(ProductPageQueryDTO productPageQueryDTO);

    /**
     * 商品批量删除
     *
     * @param ids 待删除商品的id列表
     */
    void deleteBatch(List<Long> ids);

    /**
     * 商品起售停售
     *
     * @param status 状态（起售或停售状态值）
     * @param id 商品id
     */
    void startOrStop(Integer status, Long id);

    /**
     * 根据分类id查询商品
     *
     * @param categoryId 分类id
     * @return 商品列表
     */
    List<Product> list(Long categoryId);

    /**
     * 新增商品
     *
     * @param productDTO 商品传输对象
     */
    /**
     * 根据id更新商品信息
     *
     * @param productDTO 包含更新信息的商品传输对象
     */
    void update(ProductDTO productDTO);

    /**
     * 根据id查询商品信息
     *
     * @param id 商品id
     * @return 商品实体
     */
    Product getById(Long id);
}